Frequently, computer-based systems for storing and reporting important data or information, such as financial or transactional records, include components or other means for duplicating the primary data source, sometimes called a “system of record,” in a secondary data source. Such systems may maintain the secondary data source as a backup of the data, sometimes called “source data,” in the system of record, for example, to preserve the data and information in the event of a catastrophe, loss or other malfunction. The secondary data source may also be used to perform functions with the information that differ from those that are performed using the source data stored in the system of record. The secondary data source is typically developed by receiving and processing messages from the system of record and may be maintained in the same format as the system of record, or in a different format. Once the secondary data source has been established, its contents may be reconciled against the system of record, and any information that was not copied to the secondary data source as intended may be restored via a recovery process.
Many existing systems for replicating, reconciling and recovering financial data have significant shortcomings. Batch replication, in which information is gathered in collections and transmitted together to the secondary data source, inherently delays the duplication process and can further complicate reconciliation and recovery. Batches may be transferred to the secondary data source at regular intervals, either after a sufficient volume or number of information has been gathered or after a certain period of time has elapsed, and can trail the actual financial transactions by several hours or more. Furthermore, reconciling a batch against the system of record generally cannot occur until an entire batch has been transferred, and if even one item of information (for example, a single transaction) fails to transfer to the secondary data source, then the entire batch is deemed a failure, and all subsequent batches will also be deemed failures until the single lost transaction is identified and transferred.
Synchronous systems are systems that read from, or write to, a source of record and also one or more secondary data sources simultaneously. Such systems provide a greater level of protection in ensuring that all relevant information is sufficiently replicated in all desired data sources. However, synchronous systems may be expensive, and may congest a network or occupy its entire bandwidth during a synchronous transfer, which may drag down the systems' response times to interactions or requests which may pertain to the underlying transaction or other transactions.
Asynchronous systems are preferred and inexpensive means for replicating data, and typically involve recording data in the source of record, generally at real-time or near-real-time, and recording the same data to another data source at a later time. This form of replication is sometimes referred to as “shadowing,” and permits the system of record to be replicated when processing power is available to accommodate each individual message, thereby freeing up processing power for time-critical operations associated with a transfer or other activity. Asynchronous data replication from a system of record to a secondary data source is generally performed with asynchronous messaging, such as electronic mail. Lost or unprocessed messages, however, can result in the secondary data source having an incomplete state, or containing a less than full backup of the system of record. Due to the critical nature of financial data and records pertaining to financial transactions, having an incomplete backup of a source of record may be highly undesirable.
The present invention is intended to overcome the aforementioned disadvantages of the prior art by providing an inexpensive alternative to existing systems and methods for data replication, along with easier and more effective methods for reconciling financial information between two systems.